// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.kotlin.jpsGraph.test;


import com.intellij.openapi.application.PathManager;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.idea.base.plugin.artifacts.LazyZipUnpacker;
import org.jetbrains.kotlin.idea.base.test.TestRoot;
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinArtifactsDownloader;
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinPluginLayout;
import org.jetbrains.kotlin.jps.build.AbstractIncrementalK2JvmJpsTest;
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TargetBackend;
import org.jetbrains.kotlin.test.TestMetadata;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.junit.runner.RunWith;

import java.io.File;
import java.util.regex.Pattern;

/** This class is generated by {@link org.jetbrains.kotlin.jps.GenerateJpsPluginTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@RunWith(JUnit3RunnerWithInners.class)
@TestRoot("jps/graphImplementationTests/testData/incremental")
public class IncrementalK2JvmJpsTestGenerated extends AbstractIncrementalK2JvmJpsTest {
    static void setUpTests() {
        File kotlincFolder = getKotlincFolder("2.0.20-dev-1563");
        System.setProperty("jps.kotlin.home", kotlincFolder.getAbsolutePath());

        // enable graph implementation
        System.setProperty("jps.use.dependency.graph", "true");

        // Disabe Kotlin JPS IC
        System.setProperty("kotlin.jps.dumb.mode", "true");
    }

    static private File getKotlincFolder(String compilerVersion) {
        if (compilerVersion == null) {
            return KotlinPluginLayout.getKotlinc();
        }

        // Use custom compiler for tests
        File unpackedDistDir = new File(PathManager.getSystemPath(), "kotlin-dist-for-ide/kotlinc-dist-for-ide-from-sources-testing-custom/" + compilerVersion);
        if(!unpackedDistDir.exists()) {
            File distJar = KotlinArtifactsDownloader.INSTANCE.downloadArtifactForIdeFromSources(
                    "kotlin-dist-for-ide",
                    compilerVersion
            );
            new LazyZipUnpacker(unpackedDistDir).lazyUnpack(distJar);
        }
        return unpackedDistDir;
    }

    @TestMetadata("pureKotlin")
    @TestDataPath("$PROJECT_ROOT")
    @RunWith(JUnit3RunnerWithInners.class)
    public static class PureKotlin extends AbstractIncrementalK2JvmJpsTest {
        @Override
        protected void setUp() {
            super.setUp();
            setUpTests();
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        @TestMetadata("accessingFunctionsViaPackagePart")
        public void testAccessingFunctionsViaPackagePart() throws Exception {
            runTest("pureKotlin/accessingFunctionsViaPackagePart/");
        }

        @TestMetadata("accessingPropertiesViaField")
        public void testAccessingPropertiesViaField() throws Exception {
            runTest("pureKotlin/accessingPropertiesViaField/");
        }

        @TestMetadata("addClass")
        public void testAddClass() throws Exception {
            runTest("pureKotlin/addClass/");
        }

        @TestMetadata("addFileWithFunctionOverload")
        public void testAddFileWithFunctionOverload() throws Exception {
            runTest("pureKotlin/addFileWithFunctionOverload/");
        }

        @TestMetadata("addMemberTypeAlias")
        public void testAddMemberTypeAlias() throws Exception {
            runTest("pureKotlin/addMemberTypeAlias/");
        }

        @TestMetadata("addTopLevelTypeAlias")
        public void testAddTopLevelTypeAlias() throws Exception {
            runTest("pureKotlin/addTopLevelTypeAlias/");
        }

        public void testAllFilesPresentInPureKotlin() throws Exception {
            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("pureKotlin"), Pattern.compile("^([^\\.]+)$"), Pattern.compile("(^.*Expect.*)|(^companionConstantChanged)"), TargetBackend.JVM_IR, false);
        }

        @TestMetadata("annotations")
        public void testAnnotations() throws Exception {
            runTest("pureKotlin/annotations/");
        }

        @TestMetadata("anonymousObjectChanged")
        public void testAnonymousObjectChanged() throws Exception {
            runTest("pureKotlin/anonymousObjectChanged/");
        }

        @TestMetadata("changeTypealiasTypeWithHierarhy")
        public void testChangeTypealiasTypeWithHierarhy() throws Exception {
            runTest("pureKotlin/changeTypealiasTypeWithHierarhy/");
        }

        @TestMetadata("changeTypeImplicitlyWithCircularDependency")
        public void testChangeTypeImplicitlyWithCircularDependency() throws Exception {
            runTest("pureKotlin/changeTypeImplicitlyWithCircularDependency/");
        }

        @TestMetadata("changeTypeWithHierarhyDependency")
        public void testChangeTypeWithHierarhyDependency() throws Exception {
            runTest("pureKotlin/changeTypeWithHierarhyDependency/");
        }

        @TestMetadata("changeWithRemovingUsage")
        public void testChangeWithRemovingUsage() throws Exception {
            runTest("pureKotlin/changeWithRemovingUsage/");
        }

        @TestMetadata("checkConstants")
        public void testCheckConstants() throws Exception {
            runTest("pureKotlin/checkConstants/");
        }

        @TestMetadata("classInlineFunctionChanged")
        public void testClassInlineFunctionChanged() throws Exception {
            runTest("pureKotlin/classInlineFunctionChanged/");
        }

        @TestMetadata("classObjectConstantChanged")
        public void testClassObjectConstantChanged() throws Exception {
            runTest("pureKotlin/classObjectConstantChanged/");
        }

        @TestMetadata("classRecreated")
        public void testClassRecreated() throws Exception {
            runTest("pureKotlin/classRecreated/");
        }

        @TestMetadata("classRemoved")
        public void testClassRemoved() throws Exception {
            runTest("pureKotlin/classRemoved/");
        }

        @TestMetadata("classSignatureChanged")
        public void testClassSignatureChanged() throws Exception {
            runTest("pureKotlin/classSignatureChanged/");
        }

        @TestMetadata("classSignatureUnchanged")
        public void testClassSignatureUnchanged() throws Exception {
            runTest("pureKotlin/classSignatureUnchanged/");
        }

        @TestMetadata("compilationErrorThenFixedOtherPackage")
        public void testCompilationErrorThenFixedOtherPackage() throws Exception {
            runTest("pureKotlin/compilationErrorThenFixedOtherPackage/");
        }

        @TestMetadata("compilationErrorThenFixedSamePackage")
        public void testCompilationErrorThenFixedSamePackage() throws Exception {
            runTest("pureKotlin/compilationErrorThenFixedSamePackage/");
        }

        @TestMetadata("compilationErrorThenFixedWithPhantomPart")
        public void testCompilationErrorThenFixedWithPhantomPart() throws Exception {
            runTest("pureKotlin/compilationErrorThenFixedWithPhantomPart/");
        }

        @TestMetadata("compilationErrorThenFixedWithPhantomPart2")
        public void testCompilationErrorThenFixedWithPhantomPart2() throws Exception {
            runTest("pureKotlin/compilationErrorThenFixedWithPhantomPart2/");
        }

        @TestMetadata("compilationErrorThenFixedWithPhantomPart3")
        public void testCompilationErrorThenFixedWithPhantomPart3() throws Exception {
            runTest("pureKotlin/compilationErrorThenFixedWithPhantomPart3/");
        }

        @TestMetadata("constantRemoved")
        public void testConstantRemoved() throws Exception {
            runTest("pureKotlin/constantRemoved/");
        }

        @TestMetadata("constantValueChanged")
        public void testConstantValueChanged() throws Exception {
            runTest("pureKotlin/constantValueChanged/");
        }

        @TestMetadata("constantsUnchanged")
        public void testConstantsUnchanged() throws Exception {
            runTest("pureKotlin/constantsUnchanged/");
        }

        @TestMetadata("defaultArgumentInConstructorAdded")
        public void testDefaultArgumentInConstructorAdded() throws Exception {
            runTest("pureKotlin/defaultArgumentInConstructorAdded/");
        }

        @TestMetadata("defaultArgumentInConstructorRemoved")
        public void testDefaultArgumentInConstructorRemoved() throws Exception {
            runTest("pureKotlin/defaultArgumentInConstructorRemoved/");
        }

        @TestMetadata("defaultValueAdded")
        public void testDefaultValueAdded() throws Exception {
            runTest("pureKotlin/defaultValueAdded/");
        }

        @TestMetadata("defaultValueChanged")
        public void testDefaultValueChanged() throws Exception {
            runTest("pureKotlin/defaultValueChanged/");
        }

        @TestMetadata("defaultValueInConstructorChanged")
        public void testDefaultValueInConstructorChanged() throws Exception {
            runTest("pureKotlin/defaultValueInConstructorChanged/");
        }

        @TestMetadata("defaultValueInConstructorRemoved")
        public void testDefaultValueInConstructorRemoved() throws Exception {
            runTest("pureKotlin/defaultValueInConstructorRemoved/");
        }

        @TestMetadata("defaultValueRemoved1")
        public void testDefaultValueRemoved1() throws Exception {
            runTest("pureKotlin/defaultValueRemoved1/");
        }

        @TestMetadata("defaultValueRemoved2")
        public void testDefaultValueRemoved2() throws Exception {
            runTest("pureKotlin/defaultValueRemoved2/");
        }

        @TestMetadata("delegatedPropertyInlineExtensionAccessor")
        public void testDelegatedPropertyInlineExtensionAccessor() throws Exception {
            runTest("pureKotlin/delegatedPropertyInlineExtensionAccessor/");
        }

        @TestMetadata("delegatedPropertyInlineMethodAccessor")
        public void testDelegatedPropertyInlineMethodAccessor() throws Exception {
            runTest("pureKotlin/delegatedPropertyInlineMethodAccessor/");
        }

        @TestMetadata("dependencyClassReferenced")
        public void testDependencyClassReferenced() throws Exception {
            runTest("pureKotlin/dependencyClassReferenced/");
        }

        @TestMetadata("fileWithConstantRemoved")
        public void testFileWithConstantRemoved() throws Exception {
            runTest("pureKotlin/fileWithConstantRemoved/");
        }

        @TestMetadata("fileWithInlineFunctionRemoved")
        public void testFileWithInlineFunctionRemoved() throws Exception {
            runTest("pureKotlin/fileWithInlineFunctionRemoved/");
        }

        @TestMetadata("filesExchangePackages")
        public void testFilesExchangePackages() throws Exception {
            runTest("pureKotlin/filesExchangePackages/");
        }

        @TestMetadata("funRedeclaration")
        public void testFunRedeclaration() throws Exception {
            runTest("pureKotlin/funRedeclaration/");
        }

        @TestMetadata("funVsConstructorOverloadConflict")
        public void testFunVsConstructorOverloadConflict() throws Exception {
            runTest("pureKotlin/funVsConstructorOverloadConflict/");
        }

        @TestMetadata("functionBecameInline")
        public void testFunctionBecameInline() throws Exception {
            runTest("pureKotlin/functionBecameInline/");
        }

        @TestMetadata("functionReferencingClass")
        public void testFunctionReferencingClass() throws Exception {
            runTest("pureKotlin/functionReferencingClass/");
        }

        @TestMetadata("independentClasses")
        public void testIndependentClasses() throws Exception {
            runTest("pureKotlin/independentClasses/");
        }

        @TestMetadata("inlineFunctionBecomesNonInline")
        public void testInlineFunctionBecomesNonInline() throws Exception {
            runTest("pureKotlin/inlineFunctionBecomesNonInline/");
        }

        @TestMetadata("inlineFunctionUsageAdded")
        public void testInlineFunctionUsageAdded() throws Exception {
            runTest("pureKotlin/inlineFunctionUsageAdded/");
        }

        @TestMetadata("inlineFunctionsCircularDependency")
        public void testInlineFunctionsCircularDependency() throws Exception {
            runTest("pureKotlin/inlineFunctionsCircularDependency/");
        }

        @TestMetadata("inlineFunctionsUnchanged")
        public void testInlineFunctionsUnchanged() throws Exception {
            runTest("pureKotlin/inlineFunctionsUnchanged/");
        }

        @TestMetadata("inlineLinesChanged")
        public void testInlineLinesChanged() throws Exception {
            runTest("pureKotlin/inlineLinesChanged/");
        }

        @TestMetadata("inlineModifiedWithUsage")
        public void testInlineModifiedWithUsage() throws Exception {
            runTest("pureKotlin/inlineModifiedWithUsage/");
        }

        @TestMetadata("inlinePrivateFunctionAdded")
        public void testInlinePrivateFunctionAdded() throws Exception {
            runTest("pureKotlin/inlinePrivateFunctionAdded/");
        }

        @TestMetadata("inlinePropertyInClass")
        public void testInlinePropertyInClass() throws Exception {
            runTest("pureKotlin/inlinePropertyInClass/");
        }

        @TestMetadata("inlinePropertyOnTopLevel")
        public void testInlinePropertyOnTopLevel() throws Exception {
            runTest("pureKotlin/inlinePropertyOnTopLevel/");
        }

        @TestMetadata("inlineSuspendFunctionChanged")
        public void testInlineSuspendFunctionChanged() throws Exception {
            runTest("pureKotlin/inlineSuspendFunctionChanged/");
        }

        @TestMetadata("inlineTwoFunctionsOneChanged")
        public void testInlineTwoFunctionsOneChanged() throws Exception {
            runTest("pureKotlin/inlineTwoFunctionsOneChanged/");
        }

        @TestMetadata("inlineUsedWhereDeclared")
        public void testInlineUsedWhereDeclared() throws Exception {
            runTest("pureKotlin/inlineUsedWhereDeclared/");
        }

        @TestMetadata("innerClassesFromSupertypes")
        public void testInnerClassesFromSupertypes() throws Exception {
            runTest("pureKotlin/innerClassesFromSupertypes/");
        }

        @TestMetadata("internalClassChanged")
        public void testInternalClassChanged() throws Exception {
            runTest("pureKotlin/internalClassChanged/");
        }

        @TestMetadata("internalMemberInClassChanged")
        public void testInternalMemberInClassChanged() throws Exception {
            runTest("pureKotlin/internalMemberInClassChanged/");
        }

        @TestMetadata("internalTypealias")
        public void testInternalTypealias() throws Exception {
            runTest("pureKotlin/internalTypealias/");
        }

        @TestMetadata("internalTypealiasConstructor")
        public void testInternalTypealiasConstructor() throws Exception {
            runTest("pureKotlin/internalTypealiasConstructor/");
        }

        @TestMetadata("internalTypealiasObject")
        public void testInternalTypealiasObject() throws Exception {
            runTest("pureKotlin/internalTypealiasObject/");
        }

        @TestMetadata("localClassChanged")
        public void testLocalClassChanged() throws Exception {
            runTest("pureKotlin/localClassChanged/");
        }

        @TestMetadata("moveClass")
        public void testMoveClass() throws Exception {
            runTest("pureKotlin/moveClass/");
        }

        @TestMetadata("moveFileWithChangingPackage")
        public void testMoveFileWithChangingPackage() throws Exception {
            runTest("pureKotlin/moveFileWithChangingPackage/");
        }

        @TestMetadata("moveFileWithoutChangingPackage")
        public void testMoveFileWithoutChangingPackage() throws Exception {
            runTest("pureKotlin/moveFileWithoutChangingPackage/");
        }

        @TestMetadata("multiplePackagesModified")
        public void testMultiplePackagesModified() throws Exception {
            runTest("pureKotlin/multiplePackagesModified/");
        }

        @TestMetadata("objectConstantChanged")
        public void testObjectConstantChanged() throws Exception {
            runTest("pureKotlin/objectConstantChanged/");
        }

        @TestMetadata("ourClassReferenced")
        public void testOurClassReferenced() throws Exception {
            runTest("pureKotlin/ourClassReferenced/");
        }

        @TestMetadata("overloadInlined")
        public void testOverloadInlined() throws Exception {
            runTest("pureKotlin/overloadInlined/");
        }

        @TestMetadata("packageConstantChanged")
        public void testPackageConstantChanged() throws Exception {
            runTest("pureKotlin/packageConstantChanged/");
        }

        @TestMetadata("packageFileAdded")
        public void testPackageFileAdded() throws Exception {
            runTest("pureKotlin/packageFileAdded/");
        }

        @TestMetadata("packageFileChangedPackage")
        public void testPackageFileChangedPackage() throws Exception {
            runTest("pureKotlin/packageFileChangedPackage/");
        }

        @TestMetadata("packageFileChangedThenOtherRemoved")
        public void testPackageFileChangedThenOtherRemoved() throws Exception {
            runTest("pureKotlin/packageFileChangedThenOtherRemoved/");
        }

        @TestMetadata("packageFileRemoved")
        public void testPackageFileRemoved() throws Exception {
            runTest("pureKotlin/packageFileRemoved/");
        }

        @TestMetadata("packageFilesChangedInTurn")
        public void testPackageFilesChangedInTurn() throws Exception {
            runTest("pureKotlin/packageFilesChangedInTurn/");
        }

        @TestMetadata("packageInlineFunctionAccessingField")
        public void testPackageInlineFunctionAccessingField() throws Exception {
            runTest("pureKotlin/packageInlineFunctionAccessingField/");
        }

        @TestMetadata("packageInlineFunctionFromOurPackage")
        public void testPackageInlineFunctionFromOurPackage() throws Exception {
            runTest("pureKotlin/packageInlineFunctionFromOurPackage/");
        }

        @TestMetadata("packagePrivateOnlyChanged")
        public void testPackagePrivateOnlyChanged() throws Exception {
            runTest("pureKotlin/packagePrivateOnlyChanged/");
        }

        @TestMetadata("packageRecreated")
        public void testPackageRecreated() throws Exception {
            runTest("pureKotlin/packageRecreated/");
        }

        @TestMetadata("packageRecreatedAfterRenaming")
        public void testPackageRecreatedAfterRenaming() throws Exception {
            runTest("pureKotlin/packageRecreatedAfterRenaming/");
        }

        @TestMetadata("packageRemoved")
        public void testPackageRemoved() throws Exception {
            runTest("pureKotlin/packageRemoved/");
        }

        @TestMetadata("parameterWithDefaultValueAdded")
        public void testParameterWithDefaultValueAdded() throws Exception {
            runTest("pureKotlin/parameterWithDefaultValueAdded/");
        }

        @TestMetadata("parameterWithDefaultValueRemoved")
        public void testParameterWithDefaultValueRemoved() throws Exception {
            runTest("pureKotlin/parameterWithDefaultValueRemoved/");
        }

        @TestMetadata("privateConstantsChanged")
        public void testPrivateConstantsChanged() throws Exception {
            runTest("pureKotlin/privateConstantsChanged/");
        }

        @TestMetadata("privateMethodAdded")
        public void testPrivateMethodAdded() throws Exception {
            runTest("pureKotlin/privateMethodAdded/");
        }

        @TestMetadata("privateMethodDeleted")
        public void testPrivateMethodDeleted() throws Exception {
            runTest("pureKotlin/privateMethodDeleted/");
        }

        @TestMetadata("privateMethodSignatureChanged")
        public void testPrivateMethodSignatureChanged() throws Exception {
            runTest("pureKotlin/privateMethodSignatureChanged/");
        }

        @TestMetadata("privateSecondaryConstructorAdded")
        public void testPrivateSecondaryConstructorAdded() throws Exception {
            runTest("pureKotlin/privateSecondaryConstructorAdded/");
        }

        @TestMetadata("privateSecondaryConstructorDeleted")
        public void testPrivateSecondaryConstructorDeleted() throws Exception {
            runTest("pureKotlin/privateSecondaryConstructorDeleted/");
        }

        @TestMetadata("privateValAccessorChanged")
        public void testPrivateValAccessorChanged() throws Exception {
            runTest("pureKotlin/privateValAccessorChanged/");
        }

        @TestMetadata("privateValAdded")
        public void testPrivateValAdded() throws Exception {
            runTest("pureKotlin/privateValAdded/");
        }

        @TestMetadata("privateValDeleted")
        public void testPrivateValDeleted() throws Exception {
            runTest("pureKotlin/privateValDeleted/");
        }

        @TestMetadata("privateValSignatureChanged")
        public void testPrivateValSignatureChanged() throws Exception {
            runTest("pureKotlin/privateValSignatureChanged/");
        }

        @TestMetadata("privateVarAdded")
        public void testPrivateVarAdded() throws Exception {
            runTest("pureKotlin/privateVarAdded/");
        }

        @TestMetadata("privateVarDeleted")
        public void testPrivateVarDeleted() throws Exception {
            runTest("pureKotlin/privateVarDeleted/");
        }

        @TestMetadata("privateVarSignatureChanged")
        public void testPrivateVarSignatureChanged() throws Exception {
            runTest("pureKotlin/privateVarSignatureChanged/");
        }

        @TestMetadata("propertyRedeclaration")
        public void testPropertyRedeclaration() throws Exception {
            runTest("pureKotlin/propertyRedeclaration/");
        }

        @TestMetadata("publicPropertyWithPrivateSetter")
        public void testPublicPropertyWithPrivateSetter() throws Exception {
            runTest("pureKotlin/publicPropertyWithPrivateSetter/");
        }

        @TestMetadata("removeAndRestoreCompanion")
        public void testRemoveAndRestoreCompanion() throws Exception {
            runTest("pureKotlin/removeAndRestoreCompanion/");
        }

        @TestMetadata("removeAndRestoreCompanionWithImplicitUsages")
        public void testRemoveAndRestoreCompanionWithImplicitUsages() throws Exception {
            runTest("pureKotlin/removeAndRestoreCompanionWithImplicitUsages/");
        }

        @TestMetadata("removeClass")
        public void testRemoveClass() throws Exception {
            runTest("pureKotlin/removeClass/");
        }

        @TestMetadata("removeClassInDefaultPackage")
        public void testRemoveClassInDefaultPackage() throws Exception {
            runTest("pureKotlin/removeClassInDefaultPackage/");
        }

        @TestMetadata("removeFileWithFunctionOverload")
        public void testRemoveFileWithFunctionOverload() throws Exception {
            runTest("pureKotlin/removeFileWithFunctionOverload/");
        }

        @TestMetadata("removeMemberTypeAlias")
        public void testRemoveMemberTypeAlias() throws Exception {
            runTest("pureKotlin/removeMemberTypeAlias/");
        }

        @TestMetadata("removeTopLevelTypeAlias")
        public void testRemoveTopLevelTypeAlias() throws Exception {
            runTest("pureKotlin/removeTopLevelTypeAlias/");
        }

        @TestMetadata("removeUnusedFile")
        public void testRemoveUnusedFile() throws Exception {
            runTest("pureKotlin/removeUnusedFile/");
        }

        @TestMetadata("renameClass")
        public void testRenameClass() throws Exception {
            runTest("pureKotlin/renameClass/");
        }

        @TestMetadata("renameFileWithClassesOnly")
        public void testRenameFileWithClassesOnly() throws Exception {
            runTest("pureKotlin/renameFileWithClassesOnly/");
        }

        @TestMetadata("renameFileWithFunctionOverload")
        public void testRenameFileWithFunctionOverload() throws Exception {
            runTest("pureKotlin/renameFileWithFunctionOverload/");
        }

        @TestMetadata("renameFileWithFunctionOverloadAndCreateConflict")
        public void testRenameFileWithFunctionOverloadAndCreateConflict() throws Exception {
            runTest("pureKotlin/renameFileWithFunctionOverloadAndCreateConflict/");
        }

        @TestMetadata("returnTypeChanged")
        public void testReturnTypeChanged() throws Exception {
            runTest("pureKotlin/returnTypeChanged/");
        }

        @TestMetadata("samConversion")
        public void testSamConversion() throws Exception {
            runTest("pureKotlin/samConversion/");
        }

        @TestMetadata("sealedClassesAddImplements")
        public void testSealedClassesAddImplements() throws Exception {
            runTest("pureKotlin/sealedClassesAddImplements/");
        }

        @TestMetadata("sealedClassesAddIndirectInheritor")
        public void testSealedClassesAddIndirectInheritor() throws Exception {
            runTest("pureKotlin/sealedClassesAddIndirectInheritor/");
        }

        @TestMetadata("sealedClassesAddInheritor")
        public void testSealedClassesAddInheritor() throws Exception {
            runTest("pureKotlin/sealedClassesAddInheritor/");
        }

        @TestMetadata("sealedClassesRemoveImplements")
        public void testSealedClassesRemoveImplements() throws Exception {
            runTest("pureKotlin/sealedClassesRemoveImplements/");
        }

        @TestMetadata("sealedClassesRemoveInheritor")
        public void testSealedClassesRemoveInheritor() throws Exception {
            runTest("pureKotlin/sealedClassesRemoveInheritor/");
        }

        @TestMetadata("sealedClassesWhenExpression")
        public void testSealedClassesWhenExpression() throws Exception {
            runTest("pureKotlin/sealedClassesWhenExpression/");
        }

        @TestMetadata("secondaryConstructorInlined")
        public void testSecondaryConstructorInlined() throws Exception {
            runTest("pureKotlin/secondaryConstructorInlined/");
        }

        @TestMetadata("sequentualAddingAndDeletingOfPropertyAndUsage")
        public void testSequentualAddingAndDeletingOfPropertyAndUsage() throws Exception {
            runTest("pureKotlin/sequentualAddingAndDeletingOfPropertyAndUsage/");
        }

        @TestMetadata("serializedSubClassAndChangedInterfaces")
        public void testSerializedSubClassAndChangedInterfaces() throws Exception {
            runTest("pureKotlin/serializedSubClassAndChangedInterfaces/");
        }

        @TestMetadata("simpleClassDependency")
        public void testSimpleClassDependency() throws Exception {
            runTest("pureKotlin/simpleClassDependency/");
        }

        @TestMetadata("soleFileChangesPackage")
        public void testSoleFileChangesPackage() throws Exception {
            runTest("pureKotlin/soleFileChangesPackage/");
        }

        @TestMetadata("subpackage")
        public void testSubpackage() throws Exception {
            runTest("pureKotlin/subpackage/");
        }

        @TestMetadata("suspendWithStateMachine")
        public void testSuspendWithStateMachine() throws Exception {
            runTest("pureKotlin/suspendWithStateMachine/");
        }

        @TestMetadata("topLevelFunctionSameSignature")
        public void testTopLevelFunctionSameSignature() throws Exception {
            runTest("pureKotlin/topLevelFunctionSameSignature/");
        }

        @TestMetadata("topLevelMembersInTwoFiles")
        public void testTopLevelMembersInTwoFiles() throws Exception {
            runTest("pureKotlin/topLevelMembersInTwoFiles/");
        }

        @TestMetadata("topLevelPrivateValUsageAdded")
        public void testTopLevelPrivateValUsageAdded() throws Exception {
            runTest("pureKotlin/topLevelPrivateValUsageAdded/");
        }

        @TestMetadata("traitClassObjectConstantChanged")
        public void testTraitClassObjectConstantChanged() throws Exception {
            runTest("pureKotlin/traitClassObjectConstantChanged/");
        }

        @TestMetadata("valAddCustomAccessor")
        public void testValAddCustomAccessor() throws Exception {
            runTest("pureKotlin/valAddCustomAccessor/");
        }

        @TestMetadata("valRemoveCustomAccessor")
        public void testValRemoveCustomAccessor() throws Exception {
            runTest("pureKotlin/valRemoveCustomAccessor/");
        }
    }

    @TestMetadata("classHierarchyAffected")
    @TestDataPath("$PROJECT_ROOT")
    @RunWith(JUnit3RunnerWithInners.class)
    public static class ClassHierarchyAffected extends AbstractIncrementalK2JvmJpsTest {
        @Override
        protected void setUp() {
            super.setUp();
            setUpTests();
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        public void testAllFilesPresentInClassHierarchyAffected() throws Exception {
            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("classHierarchyAffected"), Pattern.compile("^([^\\.]+)$"), Pattern.compile("(^.*Expect.*)|(^companionConstantChanged)"), TargetBackend.JVM_IR, false);
        }

        @TestMetadata("annotationFlagRemoved")
        public void testAnnotationFlagRemoved() throws Exception {
            runTest("classHierarchyAffected/annotationFlagRemoved/");
        }

        @TestMetadata("annotationListChanged")
        public void testAnnotationListChanged() throws Exception {
            runTest("classHierarchyAffected/annotationListChanged/");
        }

        @TestMetadata("bridgeGenerated")
        public void testBridgeGenerated() throws Exception {
            runTest("classHierarchyAffected/bridgeGenerated/");
        }

        @TestMetadata("classBecameFinal")
        public void testClassBecameFinal() throws Exception {
            runTest("classHierarchyAffected/classBecameFinal/");
        }

        @TestMetadata("classBecameInterface")
        public void testClassBecameInterface() throws Exception {
            runTest("classHierarchyAffected/classBecameInterface/");
        }

        @TestMetadata("classBecamePrivate")
        public void testClassBecamePrivate() throws Exception {
            runTest("classHierarchyAffected/classBecamePrivate/");
        }

        @TestMetadata("classMovedIntoOtherClass")
        public void testClassMovedIntoOtherClass() throws Exception {
            runTest("classHierarchyAffected/classMovedIntoOtherClass/");
        }

        @TestMetadata("classRemoved")
        public void testClassRemoved() throws Exception {
            runTest("classHierarchyAffected/classRemoved/");
        }

        @TestMetadata("classRemovedAndRestored")
        public void testClassRemovedAndRestored() throws Exception {
            runTest("classHierarchyAffected/classRemovedAndRestored/");
        }

        @TestMetadata("companionObjectInheritedMemberChanged")
        public void testCompanionObjectInheritedMemberChanged() throws Exception {
            runTest("classHierarchyAffected/companionObjectInheritedMemberChanged/");
        }

        @TestMetadata("companionObjectMemberChanged")
        public void testCompanionObjectMemberChanged() throws Exception {
            runTest("classHierarchyAffected/companionObjectMemberChanged/");
        }

        @TestMetadata("companionObjectNameChanged")
        public void testCompanionObjectNameChanged() throws Exception {
            runTest("classHierarchyAffected/companionObjectNameChanged/");
        }

        @TestMetadata("companionObjectToSimpleObject")
        public void testCompanionObjectToSimpleObject() throws Exception {
            runTest("classHierarchyAffected/companionObjectToSimpleObject/");
        }

        @TestMetadata("constructorVisibilityChanged")
        public void testConstructorVisibilityChanged() throws Exception {
            runTest("classHierarchyAffected/constructorVisibilityChanged/");
        }

        @TestMetadata("enumEntryAdded")
        public void testEnumEntryAdded() throws Exception {
            runTest("classHierarchyAffected/enumEntryAdded/");
        }

        @TestMetadata("enumEntryRemoved")
        public void testEnumEntryRemoved() throws Exception {
            runTest("classHierarchyAffected/enumEntryRemoved/");
        }

        @TestMetadata("enumMemberChanged")
        public void testEnumMemberChanged() throws Exception {
            runTest("classHierarchyAffected/enumMemberChanged/");
        }

        @TestMetadata("flagsAndMemberInDifferentClassesChanged")
        public void testFlagsAndMemberInDifferentClassesChanged() throws Exception {
            runTest("classHierarchyAffected/flagsAndMemberInDifferentClassesChanged/");
        }

        @TestMetadata("flagsAndMemberInSameClassChanged")
        public void testFlagsAndMemberInSameClassChanged() throws Exception {
            runTest("classHierarchyAffected/flagsAndMemberInSameClassChanged/");
        }

        @TestMetadata("implcitUpcast")
        public void testImplcitUpcast() throws Exception {
            runTest("classHierarchyAffected/implcitUpcast/");
        }

        @TestMetadata("inferredTypeArgumentChanged")
        public void testInferredTypeArgumentChanged() throws Exception {
            runTest("classHierarchyAffected/inferredTypeArgumentChanged/");
        }

        @TestMetadata("inferredTypeChanged")
        public void testInferredTypeChanged() throws Exception {
            runTest("classHierarchyAffected/inferredTypeChanged/");
        }

        @TestMetadata("interfaceAnyMethods")
        public void testInterfaceAnyMethods() throws Exception {
            runTest("classHierarchyAffected/interfaceAnyMethods/");
        }

        @TestMetadata("lambdaParameterAffected")
        public void testLambdaParameterAffected() throws Exception {
            runTest("classHierarchyAffected/lambdaParameterAffected/");
        }

        @TestMetadata("methodAdded")
        public void testMethodAdded() throws Exception {
            runTest("classHierarchyAffected/methodAdded/");
        }

        @TestMetadata("methodAnnotationAdded")
        public void testMethodAnnotationAdded() throws Exception {
            runTest("classHierarchyAffected/methodAnnotationAdded/");
        }

        @TestMetadata("methodNullabilityChanged")
        public void testMethodNullabilityChanged() throws Exception {
            runTest("classHierarchyAffected/methodNullabilityChanged/");
        }

        @TestMetadata("methodParameterWithDefaultValueAdded")
        public void testMethodParameterWithDefaultValueAdded() throws Exception {
            runTest("classHierarchyAffected/methodParameterWithDefaultValueAdded/");
        }

        @TestMetadata("methodRemoved")
        public void testMethodRemoved() throws Exception {
            runTest("classHierarchyAffected/methodRemoved/");
        }

        @TestMetadata("syntheticMethodRemoved")
        public void testSyntheticMethodRemoved() throws Exception {
            runTest("classHierarchyAffected/syntheticMethodRemoved/");
        }

        @TestMetadata("overrideExplicit")
        public void testOverrideExplicit() throws Exception {
            runTest("classHierarchyAffected/overrideExplicit/");
        }

        @TestMetadata("overrideImplicit")
        public void testOverrideImplicit() throws Exception {
            runTest("classHierarchyAffected/overrideImplicit/");
        }

        @TestMetadata("propertyNullabilityChanged")
        public void testPropertyNullabilityChanged() throws Exception {
            runTest("classHierarchyAffected/propertyNullabilityChanged/");
        }

        @TestMetadata("sealedClassImplAdded")
        public void testSealedClassImplAdded() throws Exception {
            runTest("classHierarchyAffected/sealedClassImplAdded/");
        }

        @TestMetadata("sealedClassIndirectImplAdded")
        public void testSealedClassIndirectImplAdded() throws Exception {
            runTest("classHierarchyAffected/sealedClassIndirectImplAdded/");
        }

        @TestMetadata("sealedClassNestedImplAdded")
        public void testSealedClassNestedImplAdded() throws Exception {
            runTest("classHierarchyAffected/sealedClassNestedImplAdded/");
        }

        @TestMetadata("secondaryConstructorAdded")
        public void testSecondaryConstructorAdded() throws Exception {
            runTest("classHierarchyAffected/secondaryConstructorAdded/");
        }

        @TestMetadata("starProjectionUpperBoundChanged")
        public void testStarProjectionUpperBoundChanged() throws Exception {
            runTest("classHierarchyAffected/starProjectionUpperBoundChanged/");
        }

        @TestMetadata("supertypesListChanged")
        public void testSupertypesListChanged() throws Exception {
            runTest("classHierarchyAffected/supertypesListChanged/");
        }

        @TestMetadata("typeParameterListChanged")
        public void testTypeParameterListChanged() throws Exception {
            runTest("classHierarchyAffected/typeParameterListChanged/");
        }

        @TestMetadata("varianceChanged")
        public void testVarianceChanged() throws Exception {
            runTest("classHierarchyAffected/varianceChanged/");
        }

        @TestMetadata("withIntermediateBodiesChanged")
        public void testWithIntermediateBodiesChanged() throws Exception {
            runTest("classHierarchyAffected/withIntermediateBodiesChanged/");
        }
    }

    @TestMetadata("inlineFunCallSite")
    @TestDataPath("$PROJECT_ROOT")
    @RunWith(JUnit3RunnerWithInners.class)
    public static class InlineFunCallSite extends AbstractIncrementalK2JvmJpsTest {
        @Override
        protected void setUp() {
            super.setUp();
            setUpTests();
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        public void testAllFilesPresentInInlineFunCallSite() throws Exception {
            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
        }

        @TestMetadata("classProperty")
        public void testClassProperty() throws Exception {
            runTest("inlineFunCallSite/classProperty/");
        }

        @TestMetadata("companionObjectProperty")
        public void testCompanionObjectProperty() throws Exception {
            runTest("inlineFunCallSite/companionObjectProperty/");
        }

        @TestMetadata("coroutine")
        public void testCoroutine() throws Exception {
            runTest("inlineFunCallSite/coroutine/");
        }

        @TestMetadata("function")
        public void testFunction() throws Exception {
            runTest("inlineFunCallSite/function/");
        }

        @TestMetadata("functionIndirect")
        public void testFunctionIndirect() throws Exception {
            runTest("inlineFunCallSite/functionIndirect/");
        }

        @TestMetadata("getter")
        public void testGetter() throws Exception {
            runTest("inlineFunCallSite/getter/");
        }

        @TestMetadata("lambda")
        public void testLambda() throws Exception {
            runTest("inlineFunCallSite/lambda/");
        }

        @TestMetadata("localFun")
        public void testLocalFun() throws Exception {
            runTest("inlineFunCallSite/localFun/");
        }

        @TestMetadata("method")
        public void testMethod() throws Exception {
            runTest("inlineFunCallSite/method/");
        }

        @TestMetadata("parameterDefaultValue")
        public void testParameterDefaultValue() throws Exception {
            runTest("inlineFunCallSite/parameterDefaultValue/");
        }

        @TestMetadata("primaryConstructorParameterDefaultValue")
        public void testPrimaryConstructorParameterDefaultValue() throws Exception {
            runTest("inlineFunCallSite/primaryConstructorParameterDefaultValue/");
        }

        @TestMetadata("superCall")
        public void testSuperCall() throws Exception {
            runTest("inlineFunCallSite/superCall/");
        }

        @TestMetadata("thisCall")
        public void testThisCall() throws Exception {
            runTest("inlineFunCallSite/thisCall/");
        }

        @TestMetadata("topLevelObjectProperty")
        public void testTopLevelObjectProperty() throws Exception {
            runTest("inlineFunCallSite/topLevelObjectProperty/");
        }

        @TestMetadata("topLevelProperty")
        public void testTopLevelProperty() throws Exception {
            runTest("inlineFunCallSite/topLevelProperty/");
        }

        @TestMetadata("inlineFunCallSite/classProperty")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class ClassProperty extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInClassProperty() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/classProperty"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/companionObjectProperty")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class CompanionObjectProperty extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInCompanionObjectProperty() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/companionObjectProperty"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/coroutine")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class Coroutine extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInCoroutine() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/coroutine"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/function")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class Function extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInFunction() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/function"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/functionIndirect")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class FunctionIndirect extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInFunctionIndirect() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/functionIndirect"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/getter")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class Getter extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInGetter() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/getter"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/lambda")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class Lambda extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInLambda() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/lambda"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/localFun")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class LocalFun extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInLocalFun() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/localFun"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/method")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class Method extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInMethod() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/method"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/parameterDefaultValue")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class ParameterDefaultValue extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInParameterDefaultValue() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/parameterDefaultValue"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/primaryConstructorParameterDefaultValue")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class PrimaryConstructorParameterDefaultValue extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInPrimaryConstructorParameterDefaultValue() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/primaryConstructorParameterDefaultValue"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/superCall")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class SuperCall extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInSuperCall() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/superCall"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/thisCall")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class ThisCall extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInThisCall() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/thisCall"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/topLevelObjectProperty")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class TopLevelObjectProperty extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInTopLevelObjectProperty() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/topLevelObjectProperty"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("inlineFunCallSite/topLevelProperty")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class TopLevelProperty extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInTopLevelProperty() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("inlineFunCallSite/topLevelProperty"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }
    }

    @TestMetadata("withJava")
    @TestDataPath("$PROJECT_ROOT")
    @RunWith(JUnit3RunnerWithInners.class)
    public static class WithJava extends AbstractIncrementalK2JvmJpsTest {
        @Override
        protected void setUp() {
            super.setUp();
            setUpTests();
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        public void testAllFilesPresentInWithJava() throws Exception {
            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
        }

        @TestMetadata("withJava/convertBetweenJavaAndKotlin")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class ConvertBetweenJavaAndKotlin extends AbstractIncrementalK2JvmJpsTest {
            @Override
            protected void setUp() {
                super.setUp();
                setUpTests();
            }

            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInConvertBetweenJavaAndKotlin() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/convertBetweenJavaAndKotlin"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }

            @TestMetadata("javaToKotlin")
            public void testJavaToKotlin() throws Exception {
                runTest("withJava/convertBetweenJavaAndKotlin/javaToKotlin/");
            }

            @TestMetadata("javaToKotlinAndBack")
            public void testJavaToKotlinAndBack() throws Exception {
                runTest("withJava/convertBetweenJavaAndKotlin/javaToKotlinAndBack/");
            }

            @TestMetadata("javaToKotlinAndRemove")
            public void testJavaToKotlinAndRemove() throws Exception {
                runTest("withJava/convertBetweenJavaAndKotlin/javaToKotlinAndRemove/");
            }

            @TestMetadata("kotlinToJava")
            public void testKotlinToJava() throws Exception {
                runTest("withJava/convertBetweenJavaAndKotlin/kotlinToJava/");
            }

            @TestMetadata("withJava/convertBetweenJavaAndKotlin/javaToKotlin")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class JavaToKotlin extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInJavaToKotlin() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/convertBetweenJavaAndKotlin/javaToKotlin"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/convertBetweenJavaAndKotlin/javaToKotlinAndBack")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class JavaToKotlinAndBack extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInJavaToKotlinAndBack() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/convertBetweenJavaAndKotlin/javaToKotlinAndBack"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/convertBetweenJavaAndKotlin/javaToKotlinAndRemove")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class JavaToKotlinAndRemove extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInJavaToKotlinAndRemove() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/convertBetweenJavaAndKotlin/javaToKotlinAndRemove"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/convertBetweenJavaAndKotlin/kotlinToJava")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class KotlinToJava extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInKotlinToJava() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/convertBetweenJavaAndKotlin/kotlinToJava"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }
        }

        @TestMetadata("withJava/javaUsedInKotlin")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class JavaUsedInKotlin extends AbstractIncrementalK2JvmJpsTest {
            @Override
            protected void setUp() {
                super.setUp();
                setUpTests();
            }

            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            @TestMetadata("addNullableAnnotation")
            public void testAddNullableAnnotation() throws Exception {
                runTest("withJava/javaUsedInKotlin/addNullableAnnotation/");
            }

            public void testAllFilesPresentInJavaUsedInKotlin() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }

            @TestMetadata("changeFieldType")
            public void testChangeFieldType() throws Exception {
                runTest("withJava/javaUsedInKotlin/changeFieldType/");
            }

            @TestMetadata("changeGetterType")
            public void testChangeGetterType() throws Exception {
                runTest("withJava/javaUsedInKotlin/changeGetterType/");
            }

            @TestMetadata("changeMethodToPropertyInInheritance")
            public void testChangeMethodToPropertyInInheritance() throws Exception {
                runTest("withJava/javaUsedInKotlin/changeMethodToPropertyInInheritance/");
            }

            @TestMetadata("changeNotUsedSignature")
            public void testChangeNotUsedSignature() throws Exception {
                runTest("withJava/javaUsedInKotlin/changeNotUsedSignature/");
            }

            @TestMetadata("changePropertyOverrideType")
            public void testChangePropertyOverrideType() throws Exception {
                runTest("withJava/javaUsedInKotlin/changePropertyOverrideType/");
            }

            @TestMetadata("changeSignature")
            public void testChangeSignature() throws Exception {
                runTest("withJava/javaUsedInKotlin/changeSignature/");
            }

            @TestMetadata("changeSignaturePackagePrivate")
            public void testChangeSignaturePackagePrivate() throws Exception {
                runTest("withJava/javaUsedInKotlin/changeSignaturePackagePrivate/");
            }

            @TestMetadata("changeSignaturePackagePrivateNonRoot")
            public void testChangeSignaturePackagePrivateNonRoot() throws Exception {
                runTest("withJava/javaUsedInKotlin/changeSignaturePackagePrivateNonRoot/");
            }

            @TestMetadata("changeSignatureStatic")
            public void testChangeSignatureStatic() throws Exception {
                runTest("withJava/javaUsedInKotlin/changeSignatureStatic/");
            }

            @TestMetadata("changeSyntheticProperty")
            public void testChangeSyntheticProperty() throws Exception {
                runTest("withJava/javaUsedInKotlin/changeSyntheticProperty/");
            }

            @TestMetadata("changeSyntheticProperty2")
            public void testChangeSyntheticProperty2() throws Exception {
                runTest("withJava/javaUsedInKotlin/changeSyntheticProperty2/");
            }

            //TODO: enable for Kolin 2.1
            //@TestMetadata("changeSyntheticProperty3")
            //public void testChangeSyntheticProperty3() throws Exception {
            //    runTest("withJava/javaUsedInKotlin/changeSyntheticProperty3/");
            //}


            @TestMetadata("constantChanged")
            public void testConstantChanged() throws Exception {
                runTest("withJava/javaUsedInKotlin/constantChanged/");
            }

            @TestMetadata("constantPropertyChanged")
            public void testConstantPropertyChanged() throws Exception {
                runTest("withJava/javaUsedInKotlin/constantPropertyChanged/");
            }

            @TestMetadata("constantUnchanged")
            public void testConstantUnchanged() throws Exception {
                runTest("withJava/javaUsedInKotlin/constantUnchanged/");
            }

            @TestMetadata("enumEntryAdded")
            public void testEnumEntryAdded() throws Exception {
                runTest("withJava/javaUsedInKotlin/enumEntryAdded/");
            }

            @TestMetadata("enumEntryRemoved")
            public void testEnumEntryRemoved() throws Exception {
                runTest("withJava/javaUsedInKotlin/enumEntryRemoved/");
            }

            @TestMetadata("javaAndKotlinChangedSimultaneously")
            public void testJavaAndKotlinChangedSimultaneously() throws Exception {
                runTest("withJava/javaUsedInKotlin/javaAndKotlinChangedSimultaneously/");
            }

            @TestMetadata("javaFieldNullabilityChanged")
            public void testJavaFieldNullabilityChanged() throws Exception {
                runTest("withJava/javaUsedInKotlin/javaFieldNullabilityChanged/");
            }

            @TestMetadata("javaMethodParamNullabilityChanged")
            public void testJavaMethodParamNullabilityChanged() throws Exception {
                runTest("withJava/javaUsedInKotlin/javaMethodParamNullabilityChanged/");
            }

            @TestMetadata("javaMethodReturnTypeNullabilityChanged")
            public void testJavaMethodReturnTypeNullabilityChanged() throws Exception {
                runTest("withJava/javaUsedInKotlin/javaMethodReturnTypeNullabilityChanged/");
            }

            @TestMetadata("methodAddedInSuper")
            public void testMethodAddedInSuper() throws Exception {
                runTest("withJava/javaUsedInKotlin/methodAddedInSuper/");
            }

            @TestMetadata("methodRenamed")
            public void testMethodRenamed() throws Exception {
                runTest("withJava/javaUsedInKotlin/methodRenamed/");
            }

            @TestMetadata("mixedInheritance")
            public void testMixedInheritance() throws Exception {
                runTest("withJava/javaUsedInKotlin/mixedInheritance/");
            }

            @TestMetadata("notChangeSignature")
            public void testNotChangeSignature() throws Exception {
                runTest("withJava/javaUsedInKotlin/notChangeSignature/");
            }

            @TestMetadata("potentialSamAdapter")
            public void testPotentialSamAdapter() throws Exception {
                runTest("withJava/javaUsedInKotlin/potentialSamAdapter/");
            }

            @TestMetadata("rawErrorTypeDuringSerialization")
            public void testRawErrorTypeDuringSerialization() throws Exception {
                runTest("withJava/javaUsedInKotlin/rawErrorTypeDuringSerialization/");
            }

            @TestMetadata("removeAnnotation")
            public void testRemoveAnnotation() throws Exception {
                runTest("withJava/javaUsedInKotlin/removeAnnotation/");
            }

            @TestMetadata("removeGetter")
            public void testRemoveGetter() throws Exception {
                runTest("withJava/javaUsedInKotlin/removeGetter/");
            }

            @TestMetadata("withJava/javaUsedInKotlin/addNullableAnnotation")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class AddNullableAnnotation extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInAddNullableAnnotation() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/addNullableAnnotation"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changeFieldType")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeFieldType extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeFieldType() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changeFieldType"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changeGetterType")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeGetterType extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeGetterType() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changeGetterType"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changeMethodToPropertyInInheritance")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeMethodToPropertyInInheritance extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeMethodToPropertyInInheritance() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changeMethodToPropertyInInheritance"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changeNotUsedSignature")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeNotUsedSignature extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeNotUsedSignature() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changeNotUsedSignature"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changePropertyOverrideType")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangePropertyOverrideType extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangePropertyOverrideType() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changePropertyOverrideType"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changeSignature")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeSignature extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeSignature() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changeSignature"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changeSignaturePackagePrivate")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeSignaturePackagePrivate extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeSignaturePackagePrivate() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changeSignaturePackagePrivate"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changeSignaturePackagePrivateNonRoot")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeSignaturePackagePrivateNonRoot extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeSignaturePackagePrivateNonRoot() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changeSignaturePackagePrivateNonRoot"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changeSignatureStatic")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeSignatureStatic extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeSignatureStatic() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changeSignatureStatic"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changeSyntheticProperty")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeSyntheticProperty extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeSyntheticProperty() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changeSyntheticProperty"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changeSyntheticProperty2")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeSyntheticProperty2 extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeSyntheticProperty2() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changeSyntheticProperty2"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/changeSyntheticProperty3")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeSyntheticProperty3 extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeSyntheticProperty3() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/changeSyntheticProperty3"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/constantChanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ConstantChanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInConstantChanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/constantChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/constantPropertyChanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ConstantPropertyChanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInConstantPropertyChanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/constantPropertyChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/constantUnchanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ConstantUnchanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInConstantUnchanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/constantUnchanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/enumEntryAdded")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class EnumEntryAdded extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInEnumEntryAdded() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/enumEntryAdded"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/enumEntryRemoved")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class EnumEntryRemoved extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInEnumEntryRemoved() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/enumEntryRemoved"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/javaAndKotlinChangedSimultaneously")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class JavaAndKotlinChangedSimultaneously extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInJavaAndKotlinChangedSimultaneously() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/javaAndKotlinChangedSimultaneously"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/javaFieldNullabilityChanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class JavaFieldNullabilityChanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInJavaFieldNullabilityChanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/javaFieldNullabilityChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/javaMethodParamNullabilityChanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class JavaMethodParamNullabilityChanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInJavaMethodParamNullabilityChanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/javaMethodParamNullabilityChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/javaMethodReturnTypeNullabilityChanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class JavaMethodReturnTypeNullabilityChanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInJavaMethodReturnTypeNullabilityChanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/javaMethodReturnTypeNullabilityChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/methodAddedInSuper")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MethodAddedInSuper extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMethodAddedInSuper() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/methodAddedInSuper"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/methodRenamed")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MethodRenamed extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMethodRenamed() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/methodRenamed"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/mixedInheritance")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MixedInheritance extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMixedInheritance() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/mixedInheritance"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/notChangeSignature")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class NotChangeSignature extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInNotChangeSignature() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/notChangeSignature"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/potentialSamAdapter")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class PotentialSamAdapter extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInPotentialSamAdapter() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/potentialSamAdapter"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/rawErrorTypeDuringSerialization")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class RawErrorTypeDuringSerialization extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInRawErrorTypeDuringSerialization() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/rawErrorTypeDuringSerialization"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/removeAnnotation")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class RemoveAnnotation extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInRemoveAnnotation() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/removeAnnotation"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/removeGetter")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class RemoveGetter extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInRemoveGetter() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/removeGetter"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/javaUsedInKotlin/samConversions")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class SamConversions extends AbstractIncrementalK2JvmJpsTest {
                @Override
                protected void setUp() {
                    super.setUp();
                    setUpTests();
                }

                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInSamConversions() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/samConversions"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }

                @TestMetadata("methodAddDefault")
                public void testMethodAddDefault() throws Exception {
                    runTest("withJava/javaUsedInKotlin/samConversions/methodAddDefault/");
                }

                @TestMetadata("methodAdded")
                public void testMethodAdded() throws Exception {
                    runTest("withJava/javaUsedInKotlin/samConversions/methodAdded/");
                }

                @TestMetadata("methodAddedSamAdapter")
                public void testMethodAddedSamAdapter() throws Exception {
                    runTest("withJava/javaUsedInKotlin/samConversions/methodAddedSamAdapter/");
                }

                @TestMetadata("methodSignatureChanged")
                public void testMethodSignatureChanged() throws Exception {
                    runTest("withJava/javaUsedInKotlin/samConversions/methodSignatureChanged/");
                }

                @TestMetadata("methodSignatureChangedSamAdapter")
                public void testMethodSignatureChangedSamAdapter() throws Exception {
                    runTest("withJava/javaUsedInKotlin/samConversions/methodSignatureChangedSamAdapter/");
                }

                @TestMetadata("withJava/javaUsedInKotlin/samConversions/methodAddDefault")
                @TestDataPath("$PROJECT_ROOT")
                @RunWith(JUnit3RunnerWithInners.class)
                public static class MethodAddDefault extends AbstractIncrementalK2JvmJpsTest {
                    private void runTest(String testDataFilePath) throws Exception {
                        KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                    }

                    public void testAllFilesPresentInMethodAddDefault() throws Exception {
                        KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/samConversions/methodAddDefault"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                    }
                }

                @TestMetadata("withJava/javaUsedInKotlin/samConversions/methodAdded")
                @TestDataPath("$PROJECT_ROOT")
                @RunWith(JUnit3RunnerWithInners.class)
                public static class MethodAdded extends AbstractIncrementalK2JvmJpsTest {
                    private void runTest(String testDataFilePath) throws Exception {
                        KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                    }

                    public void testAllFilesPresentInMethodAdded() throws Exception {
                        KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/samConversions/methodAdded"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                    }
                }

                @TestMetadata("withJava/javaUsedInKotlin/samConversions/methodAddedSamAdapter")
                @TestDataPath("$PROJECT_ROOT")
                @RunWith(JUnit3RunnerWithInners.class)
                public static class MethodAddedSamAdapter extends AbstractIncrementalK2JvmJpsTest {
                    private void runTest(String testDataFilePath) throws Exception {
                        KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                    }

                    public void testAllFilesPresentInMethodAddedSamAdapter() throws Exception {
                        KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/samConversions/methodAddedSamAdapter"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                    }
                }

                @TestMetadata("withJava/javaUsedInKotlin/samConversions/methodSignatureChanged")
                @TestDataPath("$PROJECT_ROOT")
                @RunWith(JUnit3RunnerWithInners.class)
                public static class MethodSignatureChanged extends AbstractIncrementalK2JvmJpsTest {
                    private void runTest(String testDataFilePath) throws Exception {
                        KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                    }

                    public void testAllFilesPresentInMethodSignatureChanged() throws Exception {
                        KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/samConversions/methodSignatureChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                    }
                }

                @TestMetadata("withJava/javaUsedInKotlin/samConversions/methodSignatureChangedSamAdapter")
                @TestDataPath("$PROJECT_ROOT")
                @RunWith(JUnit3RunnerWithInners.class)
                public static class MethodSignatureChangedSamAdapter extends AbstractIncrementalK2JvmJpsTest {
                    private void runTest(String testDataFilePath) throws Exception {
                        KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                    }

                    public void testAllFilesPresentInMethodSignatureChangedSamAdapter() throws Exception {
                        KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/javaUsedInKotlin/samConversions/methodSignatureChangedSamAdapter"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                    }
                }
            }
        }

        @TestMetadata("withJava/kotlinUsedInJava")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class KotlinUsedInJava extends AbstractIncrementalK2JvmJpsTest {
            @Override
            protected void setUp() {
                super.setUp();
                setUpTests();
            }

            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            @TestMetadata("addOptionalParameter")
            public void testAddOptionalParameter() throws Exception {
                runTest("withJava/kotlinUsedInJava/addOptionalParameter/");
            }

            public void testAllFilesPresentInKotlinUsedInJava() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }

            @TestMetadata("changeNotUsedSignature")
            public void testChangeNotUsedSignature() throws Exception {
                runTest("withJava/kotlinUsedInJava/changeNotUsedSignature/");
            }

            @TestMetadata("changeSignature")
            public void testChangeSignature() throws Exception {
                runTest("withJava/kotlinUsedInJava/changeSignature/");
            }

            @TestMetadata("constantChanged")
            public void testConstantChanged() throws Exception {
                runTest("withJava/kotlinUsedInJava/constantChanged/");
            }

            @TestMetadata("constantUnchanged")
            public void testConstantUnchanged() throws Exception {
                runTest("withJava/kotlinUsedInJava/constantUnchanged/");
            }

            @TestMetadata("funRenamed")
            public void testFunRenamed() throws Exception {
                runTest("withJava/kotlinUsedInJava/funRenamed/");
            }

            @TestMetadata("jvmFieldChanged")
            public void testJvmFieldChanged() throws Exception {
                runTest("withJava/kotlinUsedInJava/jvmFieldChanged/");
            }

            @TestMetadata("jvmFieldUnchanged")
            public void testJvmFieldUnchanged() throws Exception {
                runTest("withJava/kotlinUsedInJava/jvmFieldUnchanged/");
            }

            @TestMetadata("methodAddedInSuper")
            public void testMethodAddedInSuper() throws Exception {
                runTest("withJava/kotlinUsedInJava/methodAddedInSuper/");
            }

            @TestMetadata("notChangeSignature")
            public void testNotChangeSignature() throws Exception {
                runTest("withJava/kotlinUsedInJava/notChangeSignature/");
            }

            @TestMetadata("onlyTopLevelFunctionInFileRemoved")
            public void testOnlyTopLevelFunctionInFileRemoved() throws Exception {
                runTest("withJava/kotlinUsedInJava/onlyTopLevelFunctionInFileRemoved/");
            }

            @TestMetadata("packageFileAdded")
            public void testPackageFileAdded() throws Exception {
                runTest("withJava/kotlinUsedInJava/packageFileAdded/");
            }

            @TestMetadata("privateChanges")
            public void testPrivateChanges() throws Exception {
                runTest("withJava/kotlinUsedInJava/privateChanges/");
            }

            @TestMetadata("propertyRenamed")
            public void testPropertyRenamed() throws Exception {
                runTest("withJava/kotlinUsedInJava/propertyRenamed/");
            }

            @TestMetadata("withJava/kotlinUsedInJava/addOptionalParameter")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class AddOptionalParameter extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInAddOptionalParameter() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/addOptionalParameter"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/changeNotUsedSignature")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeNotUsedSignature extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeNotUsedSignature() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/changeNotUsedSignature"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/changeSignature")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ChangeSignature extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInChangeSignature() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/changeSignature"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/constantChanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ConstantChanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInConstantChanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/constantChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/constantUnchanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ConstantUnchanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInConstantUnchanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/constantUnchanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/funRenamed")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class FunRenamed extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInFunRenamed() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/funRenamed"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/jvmFieldChanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class JvmFieldChanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInJvmFieldChanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/jvmFieldChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/jvmFieldUnchanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class JvmFieldUnchanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInJvmFieldUnchanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/jvmFieldUnchanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/methodAddedInSuper")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MethodAddedInSuper extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMethodAddedInSuper() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/methodAddedInSuper"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/notChangeSignature")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class NotChangeSignature extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInNotChangeSignature() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/notChangeSignature"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/onlyTopLevelFunctionInFileRemoved")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class OnlyTopLevelFunctionInFileRemoved extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInOnlyTopLevelFunctionInFileRemoved() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/onlyTopLevelFunctionInFileRemoved"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/packageFileAdded")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class PackageFileAdded extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInPackageFileAdded() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/packageFileAdded"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/privateChanges")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class PrivateChanges extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInPrivateChanges() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/privateChanges"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/kotlinUsedInJava/propertyRenamed")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class PropertyRenamed extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInPropertyRenamed() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/kotlinUsedInJava/propertyRenamed"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }
        }

        @TestMetadata("withJava/other")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class Other extends AbstractIncrementalK2JvmJpsTest {
            @Override
            protected void setUp() {
                super.setUp();
                setUpTests();
            }

            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            @TestMetadata("accessingFunctionsViaRenamedFileClass")
            public void testAccessingFunctionsViaRenamedFileClass() throws Exception {
                runTest("withJava/other/accessingFunctionsViaRenamedFileClass/");
            }

            public void testAllFilesPresentInOther() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }

            @TestMetadata("allKotlinFilesRemovedThenNewAdded")
            public void testAllKotlinFilesRemovedThenNewAdded() throws Exception {
                runTest("withJava/other/allKotlinFilesRemovedThenNewAdded/");
            }

            @TestMetadata("classRedeclaration")
            public void testClassRedeclaration() throws Exception {
                runTest("withJava/other/classRedeclaration/");
            }

            @TestMetadata("classToPackageFacade")
            public void testClassToPackageFacade() throws Exception {
                runTest("withJava/other/classToPackageFacade/");
            }

            @TestMetadata("conflictingPlatformDeclarations")
            public void testConflictingPlatformDeclarations() throws Exception {
                runTest("withJava/other/conflictingPlatformDeclarations/");
            }

            @TestMetadata("defaultValueInConstructorAdded")
            public void testDefaultValueInConstructorAdded() throws Exception {
                runTest("withJava/other/defaultValueInConstructorAdded/");
            }

            @TestMetadata("inlineFunctionWithJvmNameInClass")
            public void testInlineFunctionWithJvmNameInClass() throws Exception {
                runTest("withJava/other/inlineFunctionWithJvmNameInClass/");
            }

            @TestMetadata("inlineTopLevelFunctionWithJvmName")
            public void testInlineTopLevelFunctionWithJvmName() throws Exception {
                runTest("withJava/other/inlineTopLevelFunctionWithJvmName/");
            }

            @TestMetadata("inlineTopLevelValPropertyWithJvmName")
            public void testInlineTopLevelValPropertyWithJvmName() throws Exception {
                runTest("withJava/other/inlineTopLevelValPropertyWithJvmName/");
            }

            @TestMetadata("innerClassNotGeneratedWhenRebuilding")
            public void testInnerClassNotGeneratedWhenRebuilding() throws Exception {
                runTest("withJava/other/innerClassNotGeneratedWhenRebuilding/");
            }

            @TestMetadata("jvmNameChanged")
            public void testJvmNameChanged() throws Exception {
                runTest("withJava/other/jvmNameChanged/");
            }

            @TestMetadata("mainRedeclaration")
            public void testMainRedeclaration() throws Exception {
                runTest("withJava/other/mainRedeclaration/");
            }

            @TestMetadata("multifileClassAddTopLevelFunWithDefault")
            public void testMultifileClassAddTopLevelFunWithDefault() throws Exception {
                runTest("withJava/other/multifileClassAddTopLevelFunWithDefault/");
            }

            @TestMetadata("multifileClassFileAdded")
            public void testMultifileClassFileAdded() throws Exception {
                runTest("withJava/other/multifileClassFileAdded/");
            }

            @TestMetadata("multifileClassFileChanged")
            public void testMultifileClassFileChanged() throws Exception {
                runTest("withJava/other/multifileClassFileChanged/");
            }

            @TestMetadata("multifileClassFileMovedToAnotherMultifileClass")
            public void testMultifileClassFileMovedToAnotherMultifileClass() throws Exception {
                runTest("withJava/other/multifileClassFileMovedToAnotherMultifileClass/");
            }

            @TestMetadata("multifileClassInlineFunction")
            public void testMultifileClassInlineFunction() throws Exception {
                runTest("withJava/other/multifileClassInlineFunction/");
            }

            @TestMetadata("multifileClassInlineFunctionAccessingField")
            public void testMultifileClassInlineFunctionAccessingField() throws Exception {
                runTest("withJava/other/multifileClassInlineFunctionAccessingField/");
            }

            @TestMetadata("multifileClassRecreated")
            public void testMultifileClassRecreated() throws Exception {
                runTest("withJava/other/multifileClassRecreated/");
            }

            @TestMetadata("multifileClassRecreatedAfterRenaming")
            public void testMultifileClassRecreatedAfterRenaming() throws Exception {
                runTest("withJava/other/multifileClassRecreatedAfterRenaming/");
            }

            @TestMetadata("multifileClassRemoved")
            public void testMultifileClassRemoved() throws Exception {
                runTest("withJava/other/multifileClassRemoved/");
            }

            @TestMetadata("multifileDependantUsage")
            public void testMultifileDependantUsage() throws Exception {
                runTest("withJava/other/multifileDependantUsage/");
            }

            @TestMetadata("multifilePackagePartMethodAdded")
            public void testMultifilePackagePartMethodAdded() throws Exception {
                runTest("withJava/other/multifilePackagePartMethodAdded/");
            }

            @TestMetadata("multifilePartsWithProperties")
            public void testMultifilePartsWithProperties() throws Exception {
                runTest("withJava/other/multifilePartsWithProperties/");
            }

            @TestMetadata("optionalParameter")
            public void testOptionalParameter() throws Exception {
                runTest("withJava/other/optionalParameter/");
            }

            @TestMetadata("packageFacadeToClass")
            public void testPackageFacadeToClass() throws Exception {
                runTest("withJava/other/packageFacadeToClass/");
            }

            @TestMetadata("packageMultifileClassOneFileWithPublicChanges")
            public void testPackageMultifileClassOneFileWithPublicChanges() throws Exception {
                runTest("withJava/other/packageMultifileClassOneFileWithPublicChanges/");
            }

            @TestMetadata("packageMultifileClassPrivateOnlyChanged")
            public void testPackageMultifileClassPrivateOnlyChanged() throws Exception {
                runTest("withJava/other/packageMultifileClassPrivateOnlyChanged/");
            }

            @TestMetadata("publicPropertyWithPrivateSetterMultiFileFacade")
            public void testPublicPropertyWithPrivateSetterMultiFileFacade() throws Exception {
                runTest("withJava/other/publicPropertyWithPrivateSetterMultiFileFacade/");
            }

            @TestMetadata("topLevelFunctionWithJvmName")
            public void testTopLevelFunctionWithJvmName() throws Exception {
                runTest("withJava/other/topLevelFunctionWithJvmName/");
            }

            @TestMetadata("topLevelPropertyWithJvmName")
            public void testTopLevelPropertyWithJvmName() throws Exception {
                runTest("withJava/other/topLevelPropertyWithJvmName/");
            }

            @TestMetadata("withJava/other/accessingFunctionsViaRenamedFileClass")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class AccessingFunctionsViaRenamedFileClass extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInAccessingFunctionsViaRenamedFileClass() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/accessingFunctionsViaRenamedFileClass"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/allKotlinFilesRemovedThenNewAdded")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class AllKotlinFilesRemovedThenNewAdded extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInAllKotlinFilesRemovedThenNewAdded() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/allKotlinFilesRemovedThenNewAdded"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/classRedeclaration")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ClassRedeclaration extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInClassRedeclaration() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/classRedeclaration"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/classToPackageFacade")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ClassToPackageFacade extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInClassToPackageFacade() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/classToPackageFacade"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/conflictingPlatformDeclarations")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class ConflictingPlatformDeclarations extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInConflictingPlatformDeclarations() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/conflictingPlatformDeclarations"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/defaultValueInConstructorAdded")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class DefaultValueInConstructorAdded extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInDefaultValueInConstructorAdded() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/defaultValueInConstructorAdded"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/inlineFunctionWithJvmNameInClass")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class InlineFunctionWithJvmNameInClass extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInInlineFunctionWithJvmNameInClass() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/inlineFunctionWithJvmNameInClass"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/inlineTopLevelFunctionWithJvmName")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class InlineTopLevelFunctionWithJvmName extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInInlineTopLevelFunctionWithJvmName() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/inlineTopLevelFunctionWithJvmName"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/inlineTopLevelValPropertyWithJvmName")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class InlineTopLevelValPropertyWithJvmName extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInInlineTopLevelValPropertyWithJvmName() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/inlineTopLevelValPropertyWithJvmName"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/innerClassNotGeneratedWhenRebuilding")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class InnerClassNotGeneratedWhenRebuilding extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInInnerClassNotGeneratedWhenRebuilding() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/innerClassNotGeneratedWhenRebuilding"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/jvmNameChanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class JvmNameChanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInJvmNameChanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/jvmNameChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/mainRedeclaration")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MainRedeclaration extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMainRedeclaration() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/mainRedeclaration"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifileClassAddTopLevelFunWithDefault")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifileClassAddTopLevelFunWithDefault extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifileClassAddTopLevelFunWithDefault() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifileClassAddTopLevelFunWithDefault"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifileClassFileAdded")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifileClassFileAdded extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifileClassFileAdded() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifileClassFileAdded"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifileClassFileChanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifileClassFileChanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifileClassFileChanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifileClassFileChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifileClassFileMovedToAnotherMultifileClass")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifileClassFileMovedToAnotherMultifileClass extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifileClassFileMovedToAnotherMultifileClass() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifileClassFileMovedToAnotherMultifileClass"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifileClassInlineFunction")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifileClassInlineFunction extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifileClassInlineFunction() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifileClassInlineFunction"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifileClassInlineFunctionAccessingField")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifileClassInlineFunctionAccessingField extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifileClassInlineFunctionAccessingField() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifileClassInlineFunctionAccessingField"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifileClassRecreated")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifileClassRecreated extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifileClassRecreated() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifileClassRecreated"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifileClassRecreatedAfterRenaming")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifileClassRecreatedAfterRenaming extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifileClassRecreatedAfterRenaming() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifileClassRecreatedAfterRenaming"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifileClassRemoved")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifileClassRemoved extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifileClassRemoved() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifileClassRemoved"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifileDependantUsage")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifileDependantUsage extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifileDependantUsage() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifileDependantUsage"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifilePackagePartMethodAdded")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifilePackagePartMethodAdded extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifilePackagePartMethodAdded() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifilePackagePartMethodAdded"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/multifilePartsWithProperties")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class MultifilePartsWithProperties extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInMultifilePartsWithProperties() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/multifilePartsWithProperties"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/optionalParameter")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class OptionalParameter extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInOptionalParameter() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/optionalParameter"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/packageFacadeToClass")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class PackageFacadeToClass extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInPackageFacadeToClass() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/packageFacadeToClass"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/packageMultifileClassOneFileWithPublicChanges")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class PackageMultifileClassOneFileWithPublicChanges extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInPackageMultifileClassOneFileWithPublicChanges() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/packageMultifileClassOneFileWithPublicChanges"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/packageMultifileClassPrivateOnlyChanged")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class PackageMultifileClassPrivateOnlyChanged extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInPackageMultifileClassPrivateOnlyChanged() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/packageMultifileClassPrivateOnlyChanged"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/publicPropertyWithPrivateSetterMultiFileFacade")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class PublicPropertyWithPrivateSetterMultiFileFacade extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInPublicPropertyWithPrivateSetterMultiFileFacade() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/publicPropertyWithPrivateSetterMultiFileFacade"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/topLevelFunctionWithJvmName")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class TopLevelFunctionWithJvmName extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInTopLevelFunctionWithJvmName() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/topLevelFunctionWithJvmName"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }

            @TestMetadata("withJava/other/topLevelPropertyWithJvmName")
            @TestDataPath("$PROJECT_ROOT")
            @RunWith(JUnit3RunnerWithInners.class)
            public static class TopLevelPropertyWithJvmName extends AbstractIncrementalK2JvmJpsTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
                }

                public void testAllFilesPresentInTopLevelPropertyWithJvmName() throws Exception {
                    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("withJava/other/topLevelPropertyWithJvmName"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
                }
            }
        }
    }

    @TestMetadata("incrementalJvmCompilerOnly")
    @TestDataPath("$PROJECT_ROOT")
    @RunWith(JUnit3RunnerWithInners.class)
    public static class IncrementalJvmCompilerOnly extends AbstractIncrementalK2JvmJpsTest {
        @Override
        protected void setUp() {
            super.setUp();
            setUpTests();
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        @TestMetadata("addAnnotationToJavaClass")
        public void testAddAnnotationToJavaClass() throws Exception {
            runTest("incrementalJvmCompilerOnly/addAnnotationToJavaClass/");
        }

        @TestMetadata("addNestedClass")
        public void testAddNestedClass() throws Exception {
            runTest("incrementalJvmCompilerOnly/addNestedClass/");
        }

        public void testAllFilesPresentInIncrementalJvmCompilerOnly() throws Exception {
            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("incrementalJvmCompilerOnly"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
        }

        @TestMetadata("changeAnnotationInJavaClass")
        public void testChangeAnnotationInJavaClass() throws Exception {
            runTest("incrementalJvmCompilerOnly/changeAnnotationInJavaClass/");
        }

        @TestMetadata("inlineFunctionRegeneratedObjectStability")
        public void testInlineFunctionRegeneratedObjectStability() throws Exception {
            runTest("incrementalJvmCompilerOnly/inlineFunctionRegeneratedObjectStability/");
        }

        @TestMetadata("inlineFunctionSmapStability")
        public void testInlineFunctionSmapStability() throws Exception {
            runTest("incrementalJvmCompilerOnly/inlineFunctionSmapStability/");
        }

        @TestMetadata("incrementalJvmCompilerOnly/addAnnotationToJavaClass")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class AddAnnotationToJavaClass extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInAddAnnotationToJavaClass() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("incrementalJvmCompilerOnly/addAnnotationToJavaClass"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("incrementalJvmCompilerOnly/addNestedClass")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class AddNestedClass extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInAddNestedClass() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("incrementalJvmCompilerOnly/addNestedClass"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("incrementalJvmCompilerOnly/changeAnnotationInJavaClass")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class ChangeAnnotationInJavaClass extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInChangeAnnotationInJavaClass() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("incrementalJvmCompilerOnly/changeAnnotationInJavaClass"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("incrementalJvmCompilerOnly/inlineFunctionRegeneratedObjectStability")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class InlineFunctionRegeneratedObjectStability extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInInlineFunctionRegeneratedObjectStability() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("incrementalJvmCompilerOnly/inlineFunctionRegeneratedObjectStability"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }

        @TestMetadata("incrementalJvmCompilerOnly/inlineFunctionSmapStability")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class InlineFunctionSmapStability extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInInlineFunctionSmapStability() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("incrementalJvmCompilerOnly/inlineFunctionSmapStability"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }
    }

    @TestMetadata("resolution")
    @TestDataPath(".")
    @RunWith(JUnit3RunnerWithInners.class)
    public static class ResolutionTests extends AbstractIncrementalK2JvmJpsTest {
        @Override
        protected void setUp() {
            super.setUp();
            setUpTests();
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        @TestMetadata("classOverFun")
        public void testClassShadowsFunction() throws Exception {
            runTest("resolution/classOverFun");
        }

        @TestMetadata("addMethodDirectly_implicitThis")
        public void testAddMethodDirectly() throws Exception {
            runTest("resolution/addMethodDirectly_implicitThis");
        }

        @TestMetadata("addMethodToParent_implicitThis")
        public void testAddMethodToParent() throws Exception {
            runTest("resolution/addMethodToParent_implicitThis");
        }

        @TestMetadata("invokeOverFun")
        public void testInvokeShadowsFunction() throws Exception {
            runTest("resolution/invokeOverFun");
        }
    }

    @TestMetadata("sealed")
    @TestDataPath(".")
    @RunWith(JUnit3RunnerWithInners.class)
    public static class SealedTypeTests extends AbstractIncrementalK2JvmJpsTest {
        @Override
        protected void setUp() {
            super.setUp();
            setUpTests();
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        @TestMetadata("addedEntry")
        public void testAddedEntry() throws Exception {
            runTest("sealed/addedEntry");
        }

        @TestMetadata("removedEntry")
        public void testRemovedEntry() throws Exception {
            runTest("sealed/removedEntry");
        }

        @TestMetadata("unrelatedDiff")
        public void testUnrelatedDiff() throws Exception {
            runTest("sealed/unrelatedDiff");
        }
    }

    @TestMetadata("multiModule/withJavaUsedInKotlin")
    @TestDataPath("$PROJECT_ROOT")
    @RunWith(JUnit3RunnerWithInners.class)
    public static class WithJavaUsedInKotlin extends AbstractIncrementalK2JvmJpsTest {
        @Override
        protected void setUp() {
            super.setUp();
            setUpTests();
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
        }

        public void testAllFilesPresentInWithJavaUsedInKotlin() throws Exception {
            KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("multiModule/withJavaUsedInKotlin"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
        }

        @TestMetadata("importedClassRemoved")
        public void testImportedClassRemoved() throws Exception {
            runTest("multiModule/withJavaUsedInKotlin/importedClassRemoved/");
        }

        @TestMetadata("multiModule/withJavaUsedInKotlin/importedClassRemoved")
        @TestDataPath("$PROJECT_ROOT")
        @RunWith(JUnit3RunnerWithInners.class)
        public static class ImportedClassRemoved extends AbstractIncrementalK2JvmJpsTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doTest, this, TargetBackend.JVM_IR, testDataFilePath);
            }

            public void testAllFilesPresentInImportedClassRemoved() throws Exception {
                KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("multiModule/withJavaUsedInKotlin/importedClassRemoved"), Pattern.compile("^([^\\.]+)$"), null, TargetBackend.JVM_IR, true);
            }
        }
    }
}
